#pragma once

#include <QVector>
#include <QSharedPointer>

#include "Tank.h"
#include "Bullet.h"
#include "Map.h"


class GameBoard
{
public:
    GameBoard();

    QList< BulletPtr >* Bullets() { return &m_bullets; }
    QList< TankPtr >* Tanks() { return &m_tanks; }

    QSharedPointer<Map> GetMap() const {return m_map;}
    void SetMap(const QSharedPointer<Map>& map) {m_map = map;}

    void SetTanks(QList<TankPtr> tanks) { m_tanks = tanks; }
    void SetBullets(QList<BulletPtr> bullets) { m_bullets = bullets; }

private:
    QList<BulletPtr> m_bullets;
    QList<TankPtr> m_tanks;

    QSharedPointer<Map> m_map;
};

typedef QSharedPointer<GameBoard> GameBoardPtr;
